package com.tsd.jxc.fin.dao;

import com.tsd.common.vo.BatchDeleteLogicVo;
import com.tsd.core.vo.PageBean;
import com.tsd.jxc.fin.entity.JxcFinancePaymentRequestDetail;
import com.tsd.jxc.fin.entity.JxcFinancePaymentRequestDetailExt;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 描述：JxcFinancePaymentRequestDetailMapper
 *
 * @author Hillpool
 * @date 2023/02/09 18:00:21
 */
public interface JxcFinancePaymentRequestDetailMapper {

    JxcFinancePaymentRequestDetail selectByPrimaryKey(Long id);

    JxcFinancePaymentRequestDetailExt selectBySid(String sid);

    int deleteByPrimaryKey(Long id);

    int insert(JxcFinancePaymentRequestDetail record);

    int insertSelective(JxcFinancePaymentRequestDetail record);

    int insertList(@Param("list") List<JxcFinancePaymentRequestDetailExt> list);

    int updateByPrimaryKey(JxcFinancePaymentRequestDetail record);

    int updateByPrimaryKeySelective(JxcFinancePaymentRequestDetail record);

    int updateList(@Param("list") List<JxcFinancePaymentRequestDetailExt> list);

    List<JxcFinancePaymentRequestDetailExt> selectByEntity(JxcFinancePaymentRequestDetailExt record);

    List<JxcFinancePaymentRequestDetailExt> selectByPage(@Param("params") Map<String, Object> params, @Param("page") PageBean page);

    List<JxcFinancePaymentRequestDetailExt> selectCount1Page(@Param("params") Map<String, Object> params, @Param("page") PageBean page);

    List<JxcFinancePaymentRequestDetailExt> selectByParams(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectSaleDataByOrder(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectBuyDataByOrder(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectSaleDataBySend(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectBuyDataBySend(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectSaleDataByStockInBill(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectSaleDataByStockOutBill(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectBuyDataByStockInBill(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectBuyDataByStockOutBill(@Param("params") Map<String, Object> params);

    List<JxcFinancePaymentRequestDetailExt> selectData4Fund(@Param("params") Map<String, Object> params);

    int deleteLogicByIdList(BatchDeleteLogicVo logicVo);

    int updateSalePayReqStateBySaleOrderDetailList(@Param("detail_list") List<String> detail_list, @Param("state") Integer state);

    int updateSalePayReqStateBySaleOrderList(@Param("order_list") List<String> order_list);

    int updateBuyPayReqStateByBuyOrderDetailList(@Param("detail_list") List<String> detail_list, @Param("state") Integer state);

    int updateBuyPayReqStateByBuyOrderList(@Param("order_list") List<String> order_list);

    int updateSendPayReqStateBySendDetailList(@Param("detail_list") List<String> detail_list, @Param("type") String type, @Param("state") Integer state);

    int updateSendPayReqStateBySendList(@Param("send_list") List<String> send_list, @Param("type") String type);

    int updateSendPayReqStateByInBillItemList(@Param("item_list") List<String> item_list, @Param("state") Integer state);

    int updateSendPayReqStateByInBillList(@Param("bill_list") List<String> bill_list);

    int updateSendPayReqStateByOutBillItemList(@Param("item_list") List<String> item_list, @Param("state") Integer state);

    int updateSendPayReqStateByOutBillList(@Param("bill_list") List<String> bill_list);

    int updatePayReqState4CutMoney(@Param("detail_list") List<String> detail_list, @Param("state") Integer state);

    int updatePayReqState4FundDetail(@Param("detail_list") List<String> detail_list, @Param("state") Integer state);

    int updateSaleDetailPayReqStateByRequestList(@Param("request_list") List<String> request_list);

    int updateSalePayReqStateByRequestList(@Param("request_list") List<String> request_list);

    int updateBuyDetailPayReqStateByRequestList(@Param("request_list") List<String> request_list);

    int updateBuyPayReqStateByRequestList(@Param("request_list") List<String> request_list);

    List<JxcFinancePaymentRequestDetailExt> selectByRequestList(@Param("request_list") List<String> request_list);
}